StupidBeauty
Read times:1667Posted at: - no title specified

Java文档翻译:拉链文件系统提供者,Zip File System Provider

介绍

爪哇标准版7(Java SE 7)中引入的拉链文件系统提供者,是一个自定义的文件系统提供者。拉链文件系统提供者,将一个zip (压缩包)或JAR(爪哇压缩包)文件当作一个文件系统来处理,并提供了处理该文件中的内容的功能。拉链文件系统提供者,可以创建多个文件系统——每个文件系统针对着一个zip 或JAR 文件。

妳的电脑上爪哇标准版7的安装目录的 demo/nio/zipfs/src.zip 文件 中包含着拉链文件系统提供者的源代码。 它还包含着一个 Demo.java 类,其中展示了如何使用拉链文件系统提供者。

使用拉链文件系统提供

妳可以使用 java.nio.file.FileSystems 类的工厂方法来创建一个新的拉链文件系统,或者引用到某个已有的拉链文件系统。使用 以下的某种方式来指定对应的zip 或JAR 文件的路径,以创建一个拉链文件系统:

  • •. 使用 java.net.JarURLConnection 类中定义的爪哇压缩包统一资源定位符(URL)语法

    URI uri = URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");

    FileSystem fs = FileSystems.newFileSystem(uri, env);

  • •.指定一个路径,并且利用自动文件类型检测功能

    Path zipfile = Paths.get("/codeSamples/zipfs/zipfstest.zip");

    FileSystem fs = FileSystems.newFileSystem(zipfile, env, null);

在传递给 FileSystems.newFileSystem 方法的 java.util.Map 对象中指定针对该拉链文件系统的配置选项。阅读 拉链文件系统属性 主题, 以了解与拉链文件系统相关的配置属性。

当妳拥有了拉链文件系统的一个实例之后, 就可以调用 java.nio.file.FileSystem java.nio.file.Path 类的那些方法来进行相关的操作,例如:复制文件 、移动文件、重命名文件以及修改文件的属性。

以下代码示例,展示了,如何创建一个拉链文件系统,以及向该拉链文件系统中复制一个文件。

import java.util.*;

import java.net.URI;

import java.nio.file.Path;

import java.nio.file.*;

public class ZipFSPUser {

public static void main(String [] args) throws Throwable {

Map<String, String> env = new HashMap<>();

env.put("create", "true");

// 利用java.net.JarURLConnection 中定义的语法来定位到文件系统

URI uri = URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");

try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {

Path externalTxtFile = Paths.get("/codeSamples/zipfs/SomeTextFile.txt");

Path pathInZipfile = zipfs.getPath("/SomeTextFile.txt");          

// 向该 zip 文件中复制一个文件

Files.copy( externalTxtFile,pathInZipfile,

StandardCopyOption.REPLACE_EXISTING );

}

}

}

资源

Your opinions

Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands

 
Recent comments
2017年4月~2019年4月垃圾短信排行榜Posted at:Thu Sep 26 04:51:48 2024
Qt5.7文档翻译:QWebEngineCookieStore类,QWebEngineCookieStore ClassPosted at:Fri Aug 11 06:50:35 2023盲盒kill -9 18289 Grebe.20230517.211749.552.mp4